﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyBanHang_NewApp.BUS;
using QuanLyBanHang_NewApp.Entity;

namespace QuanLyBanHang_NewApp
{
    public partial class FormSanPham : Form
    {
        SanPhamBUS sp_BUS;
        bool them = false;
        public FormSanPham(int quyen)
        {
            InitializeComponent();
            
            sp_BUS = new SanPhamBUS();
            btn_luu.Enabled = false;
            btn_huy.Enabled = false;
            if (quyen == 0) panelButton.Enabled = false;
        }

        private void FormSanPham_Load(object sender, EventArgs e)
        {
            dtgvSanPham.DataSource = sp_BUS.getAllSP();
            dtgvSanPham.Columns[0].HeaderText = "Mã sản phẩm";
            dtgvSanPham.Columns["TenSanPham"].HeaderText = "Tên sản phẩm";
            dtgvSanPham.Columns["Gia"].HeaderText = "Đơn giá";
            dtgvSanPham.Columns["LoaiSanPham"].HeaderText = "Loại sản phẩm";
            dtgvSanPham.Columns["MoTa"].HeaderText = "Mô tả";
            dtgvSanPham.Columns["SoLuong"].HeaderText = "Số lượng";
            

        }

        private void btn_them_Click(object sender, EventArgs e)
        {
            panelInput.Enabled = true;
            them = true;
            btn_luu.Enabled = true;
            btn_huy.Enabled = true;
            panelButton.Enabled = false;
        }

        private void btn_luu_Click(object sender, EventArgs e)
        {
            try
            {
                if(them)
                {
                    if ((txtGia.Text == "") || (txtTensp.Text == "") || (txtSoluong.Text == ""))
                    {
                        MessageBox.Show("Nhập thiếu thông tin");
                    }
                    else
                    {
                        SanPham sp = new SanPham(0, txtTensp.Text, txtLoai.Text, double.Parse(txtGia.Text), int.Parse(txtSoluong.Text), txtMota.Text);
                        if (sp_BUS.themSP(sp))
                        {
                            MessageBox.Show("Thêm sản phẩm thành công");
                            txtGia.Clear();
                            txtLoai.Clear();
                            txtMasp.Clear();
                            txtMota.Clear();
                            txtSoluong.Clear();
                            txtTensp.Clear();
                            them = false;

                            panelInput.Enabled = false;
                            panelButton.Enabled = true;
                            btn_huy.Enabled = false;
                            btn_luu.Enabled = false;
                            dtgvSanPham.DataSource = sp_BUS.getAllSP();

                        }
                        else
                        {
                            MessageBox.Show("Lỗi khi thêm sản phẩm!!!");
                        }
                    }
                    
                    
                }
                else
                {
                    if ((txtGia.Text == "") || (txtTensp.Text == "") || (txtSoluong.Text == ""))
                    {
                        MessageBox.Show("Nhập thiếu thông tin");
                    }
                    else
                    {
                        SanPham sp = new SanPham(long.Parse(txtMasp.Text), txtTensp.Text, txtLoai.Text, double.Parse(txtGia.Text), int.Parse(txtSoluong.Text), txtMota.Text);
                        if(sp_BUS.capnhatSP(sp))
                        {
                            MessageBox.Show("Cập nhật sản phẩm thành công");
                            dtgvSanPham.DataSource = sp_BUS.getAllSP();
                            panelButton.Enabled = true;
                            panelInput.Enabled = false;

                            txtGia.Clear();
                            txtLoai.Clear();
                            txtMasp.Clear();
                            txtMota.Clear();
                            txtSoluong.Clear();
                            txtTensp.Clear();

                            btn_huy.Enabled = false;
                            btn_luu.Enabled = false;
                        }
                        else
                        {
                            MessageBox.Show("Lỗi khi sửa sản phẩm");
                        }
                    }
                }
                
            }
            catch
            {
                MessageBox.Show("Lỗi khi lưu thay đổi!!!");
    
            }
        }

        private void btn_huy_Click(object sender, EventArgs e)
        {
            
            txtGia.Clear();
            txtLoai.Clear();
            txtMasp.Clear();
            txtMota.Clear();
            txtSoluong.Clear();
            txtTensp.Clear();
            panelInput.Enabled = false;
            panelButton.Enabled = true;
            btn_huy.Enabled = false;
            btn_luu.Enabled = false;
            
        }

        private void btn_sua_Click(object sender, EventArgs e)
        {
            panelButton.Enabled = false;
            panelInput.Enabled = true;
            txtMasp.Text = dtgvSanPham.SelectedRows[0].Cells[0].Value.ToString();
            txtTensp.Text = dtgvSanPham.SelectedRows[0].Cells[1].Value.ToString();
            txtSoluong.Text = dtgvSanPham.SelectedRows[0].Cells[2].Value.ToString();
            txtGia.Text = dtgvSanPham.SelectedRows[0].Cells[3].Value.ToString();
            txtLoai.Text = dtgvSanPham.SelectedRows[0].Cells[4].Value.ToString();
            txtMota.Text = dtgvSanPham.SelectedRows[0].Cells[5].Value.ToString();

            them = false;
            btn_huy.Enabled = true;
            btn_luu.Enabled = true;

        }

        private void btn_timkiem_Click(object sender, EventArgs e)
        {
            dtgvSanPham.DataSource = sp_BUS.getByName(txtTimkiem.Text);
            if (sp_BUS.getByName(txtTimkiem.Text).Rows.Count==0) MessageBox.Show("Không tìm thấy sản phẩm");

        }


        private void btn_xoa_Click(object sender, EventArgs e)
        {
            try
            {
               
                if (MessageBox.Show("Bạn có chắc muốn xóa sản phẩm này?","Confirm",MessageBoxButtons.OKCancel)==DialogResult.OK)
                {
                    int id = int.Parse(dtgvSanPham.SelectedRows[0].Cells[0].Value.ToString());
                    if (sp_BUS.xoaSP(id)) MessageBox.Show("Đã xóa");
                    else MessageBox.Show("Có lỗi");
                    dtgvSanPham.DataSource = sp_BUS.getByName(txtTimkiem.Text);
                }
            }
            catch (Exception gg)
            {
                MessageBox.Show("Chọn Hàng Cần Xóa");
            }
        }

        private void btn_thoat_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void txtSoluong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtGia_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }
    }
}
